{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Ploting different new features"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import matplotlib as mpl\n",
    "mpl.style.use('seaborn')\n",
    "\n",
    "import sys\n",
    "sys.path.append(\"..\") # Adds higher directory to python modules path.\n",
    "from ta import *"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Load data\n",
    "df = pd.read_csv('../data/datas.csv', sep=',')\n",
    "df = utils.dropna(df)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(46306, 8)"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Timestamp</th>\n",
       "      <th>Open</th>\n",
       "      <th>High</th>\n",
       "      <th>Low</th>\n",
       "      <th>Close</th>\n",
       "      <th>Volume_BTC</th>\n",
       "      <th>Volume_Currency</th>\n",
       "      <th>Weighted_Price</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1315918800</td>\n",
       "      <td>5.80</td>\n",
       "      <td>6.00</td>\n",
       "      <td>5.80</td>\n",
       "      <td>6.00</td>\n",
       "      <td>25.000000</td>\n",
       "      <td>149.190000</td>\n",
       "      <td>5.967600</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1315922400</td>\n",
       "      <td>5.95</td>\n",
       "      <td>5.95</td>\n",
       "      <td>5.76</td>\n",
       "      <td>5.76</td>\n",
       "      <td>22.353982</td>\n",
       "      <td>132.041023</td>\n",
       "      <td>5.906823</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1315926000</td>\n",
       "      <td>5.65</td>\n",
       "      <td>5.65</td>\n",
       "      <td>5.65</td>\n",
       "      <td>5.65</td>\n",
       "      <td>2.542000</td>\n",
       "      <td>14.362300</td>\n",
       "      <td>5.650000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>1315940400</td>\n",
       "      <td>5.92</td>\n",
       "      <td>5.97</td>\n",
       "      <td>5.92</td>\n",
       "      <td>5.97</td>\n",
       "      <td>8.475400</td>\n",
       "      <td>50.504066</td>\n",
       "      <td>5.958901</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>1315983600</td>\n",
       "      <td>5.58</td>\n",
       "      <td>5.62</td>\n",
       "      <td>5.54</td>\n",
       "      <td>5.62</td>\n",
       "      <td>16.425700</td>\n",
       "      <td>91.537032</td>\n",
       "      <td>5.572793</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     Timestamp  Open  High   Low  Close  Volume_BTC  Volume_Currency  \\\n",
       "0   1315918800  5.80  6.00  5.80   6.00   25.000000       149.190000   \n",
       "1   1315922400  5.95  5.95  5.76   5.76   22.353982       132.041023   \n",
       "2   1315926000  5.65  5.65  5.65   5.65    2.542000        14.362300   \n",
       "6   1315940400  5.92  5.97  5.92   5.97    8.475400        50.504066   \n",
       "18  1315983600  5.58  5.62  5.54   5.62   16.425700        91.537032   \n",
       "\n",
       "    Weighted_Price  \n",
       "0         5.967600  \n",
       "1         5.906823  \n",
       "2         5.650000  \n",
       "6         5.958901  \n",
       "18        5.572793  "
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "df['hband'] = bollinger_hband(df[\"Close\"], n=14, fillna=False)\n",
    "df['lband'] = bollinger_lband(df[\"Close\"], n=14, fillna=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x10f4db358>"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10f4b1d68>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "df[['Close', 'hband', 'lband']][400:450].plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "../ta/trend.py:170: RuntimeWarning: invalid value encountered in double_scalars\n",
      "  dip[i] = 100 * (dip_mio[i]/trs[i])\n",
      "../ta/trend.py:174: RuntimeWarning: invalid value encountered in double_scalars\n",
      "  din[i] = 100 * (din_mio[i]/trs[i])\n",
      "../ta/trend.py:634: FutureWarning: Currently, 'apply' passes the values as ndarrays to the applied function. In the future, this will change to passing it as Series objects. You need to specify 'raw=True' to keep the current behaviour, and you can pass 'raw=False' to silence this warning\n",
      "  aroon_up = close.rolling(n).apply(lambda x: float(np.argmax(x) + 1) / n * 100)\n",
      "../ta/trend.py:656: FutureWarning: Currently, 'apply' passes the values as ndarrays to the applied function. In the future, this will change to passing it as Series objects. You need to specify 'raw=True' to keep the current behaviour, and you can pass 'raw=False' to silence this warning\n",
      "  aroon_down = close.rolling(n).apply(lambda x: float(np.argmin(x) + 1) / n * 100)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "Timestamp                   0\n",
       "Open                        0\n",
       "High                        0\n",
       "Low                         0\n",
       "Close                       0\n",
       "Volume_BTC                  0\n",
       "Volume_Currency             0\n",
       "Weighted_Price              0\n",
       "hband                      13\n",
       "lband                      13\n",
       "volume_adi                  0\n",
       "volume_obv                  0\n",
       "volume_obvm                 0\n",
       "volume_cmf                  0\n",
       "volume_fi                   0\n",
       "volume_em                   0\n",
       "volume_vpt                  0\n",
       "volume_nvi                  0\n",
       "volatility_atr              0\n",
       "volatility_bbh              0\n",
       "volatility_bbl              0\n",
       "volatility_bbm              0\n",
       "volatility_bbhi             0\n",
       "volatility_bbli             0\n",
       "volatility_kcc              0\n",
       "volatility_kch              0\n",
       "volatility_kcl              0\n",
       "volatility_kchi             0\n",
       "volatility_kcli             0\n",
       "volatility_dch              0\n",
       "                           ..\n",
       "trend_adx_pos               0\n",
       "trend_adx_neg               0\n",
       "trend_vortex_ind_pos        0\n",
       "trend_vortex_ind_neg        0\n",
       "trend_vortex_diff           0\n",
       "trend_trix                  0\n",
       "trend_mass_index            0\n",
       "trend_cci                   0\n",
       "trend_dpo                   0\n",
       "trend_kst                   0\n",
       "trend_kst_sig               0\n",
       "trend_kst_diff              0\n",
       "trend_ichimoku_a            0\n",
       "trend_ichimoku_b            0\n",
       "trend_visual_ichimoku_a     0\n",
       "trend_visual_ichimoku_b     0\n",
       "trend_aroon_up              0\n",
       "trend_aroon_down            0\n",
       "trend_aroon_ind             0\n",
       "momentum_rsi                0\n",
       "momentum_mfi                0\n",
       "momentum_tsi                0\n",
       "momentum_uo                 0\n",
       "momentum_stoch              0\n",
       "momentum_stoch_signal       0\n",
       "momentum_wr                 0\n",
       "momentum_ao                 0\n",
       "others_dr                   0\n",
       "others_dlr                  0\n",
       "others_cr                   0\n",
       "Length: 69, dtype: int64"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Add all ta features filling nans values\n",
    "df = add_all_ta_features(df, \"Open\", \"High\", \"Low\", \"Close\", \"Volume_BTC\", fillna=True)\n",
    "df.isnull().sum()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Ploting some volatility features"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Bollinger Bands"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "plt.plot(df[40700:41000].Close)\n",
    "plt.plot(df[40700:41000].volatility_bbh, label='High BB')\n",
    "plt.plot(df[40700:41000].volatility_bbl, label='Low BB')\n",
    "plt.plot(df[40700:41000].volatility_bbm, label='EMA BB')\n",
    "plt.title('Bollinger Bands')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Keltner Channel"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "plt.plot(df[40500: 41000].Close)\n",
    "plt.plot(df[40500: 41000].volatility_kcc, label='Central KC')\n",
    "plt.plot(df[40500: 41000].volatility_kch, label='High KC')\n",
    "plt.plot(df[40500: 41000].volatility_kcl, label='Low KC')\n",
    "plt.title('Keltner Channel')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Donchian Channel"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "plt.plot(df[40500: 41000].Close)\n",
    "plt.plot(df[40500: 41000].volatility_dch, label='High DC')\n",
    "plt.plot(df[40500: 41000].volatility_dcl, label='Low DC')\n",
    "plt.title('Donchian Channel')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Ploting trend features"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### MACD"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "plt.plot(df[40500:41000].trend_macd, label='MACD')\n",
    "plt.plot(df[40500:41000].trend_macd_signal, label='MACD Signal')\n",
    "plt.plot(df[40500:41000].trend_macd_diff, label='MACD Difference')\n",
    "plt.title('MACD, MACD Signal and MACD Difference')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### KST"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "plt.plot(df[40700:41000].trend_kst, label='KST')\n",
    "plt.plot(df[40700:41000].trend_kst_sig, label='KST Signal')\n",
    "plt.plot(df[40700:41000].trend_kst_diff, label='KST - KST Signal')\n",
    "plt.title('Know Sure Thing (KST)')\n",
    "plt.legend()\n",
    "plt.show()\n",
    "#plt.savefig('test.png', bbox_inches='tight')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Ichimoku Kinkō Hyō"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "plt.plot(df[40500:41000].Close)\n",
    "plt.plot(df[40500:41000].trend_ichimoku_a, label='Ichimoku a')\n",
    "plt.plot(df[40500:41000].trend_ichimoku_b, label='Ichimoku b')\n",
    "plt.title('Ichimoku Kinko Hyo')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Ploting all features"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "for col in df.columns:\n",
    "    plt.plot(df[col])\n",
    "    plt.title(col)\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
